perm filename ARMUS[SYS,HE]3 blob
sn#021169 filedate 1973-01-22 generic text, type T, neo UTF8
00100 START: MOVE P,[XWD -PDLL,UPDL]
00200 PUSHJ P,GAIN
00300 OUTSTR[ASCIZ/!
00400 /]
00500 WAIT: WRCV EXE
00600 HLRZ 5,EXE
00700 CAIE 5,MASTER
00800 JRST[ MOVEI 3,VERSN
00900 JRST FINISH]
01000 WAITED: MOVE 1,SEGJOB
01100 HRRZM 1,JOB
01200 HLRZM 1,SEG
01300 IFN REPORT+TRACK,<
01400 MOVE 1,[IOWD DBL-100,DATO]
01500 MOVEM 1,DATPT ;DATA POINTER
01600 MOVEM 1,DATIWD ;OUTPUT POINTER
01700 >
01800 SETZB 3,TRAJER
01900 MOVEI 0,0
02000 LDB 1,[POINT 3,EXE,35]
02100 CAIG 1,1
02200 JRST READ
02300 IFE ARMWORK,<
02400 MOVEI 3,NOTHER
02500 JRST FINISH
02600 >
02700 IFN REPORT+TRACK,< ;WRITE OUT DATA
02800 INIT 15,17
02900 SIXBIT /DSK/
03000 0
03100 JRST NDM
03200 MOVE 2,FILE
03300 MOVEM 2,DFILE
03400 MOVE 2,PPPN
03500 MOVEM 2,DPPPN
03600 IFN TRACK,<
03700 SKIPE WALK
03800 JRST[ LOOKUP 15,DFILE
03900 JRST NDMS
04000 MOVE 2,[IOWD DBL,DATO]
04100 MOVEM 2,DATPT
04200 INPUT 15,1
04300 JRST EXFN]
04400 >
04500 ENTER 15,DFILE
04600 JRST[NDMS:MOVEI 3,NODATA
04700 SUB 17,[XWD 1,1]
04800 JRST FINISH]
04900 >
05000 EXFN: CAIN 1,3
05100 JRST[ MOVE 4,EXE
05200 TRNN 4,HOLDF
05300 JRST [ HRRZ 1,JUMPBK
05305 SKIPE ARGS
05307 SOJ 1,
05310 SKIPN (1)
05400 JRST BACK
05410 HRRM 1,JUMPBK
05500 JRST MOVON]
05600 SOS 1,STKPTR
05700 MOVEI 2,(1)
05800 LDB 3,[POINT 9,EXE,26]
05900 SUBI 1,(3)
06000 HRLI 1,ARGS
06100 BLT 1,(2)
06200 TRNE 4,RELOCF
06300 JRST[ MOVE 1,STKPTR
06400 SUBI 1,(3)
06500 SUB 1,CBUFS
06600 HRRM 1,@STKPTR
06700 JRST BPTR]
06800 BPTR: SOS STKPTR
06900 MOVON: SETOM FUNCT
07000 JRST SSW]
07100 CAIE 1,2
07200 JRST[ MOVEI 3,INVMES
07300 JRST FINISH]
07400 SETZM FUNCT
07500 HRREI 2,BUF-1001
07600 MOVEM 2,CBUFS
07700 SETOM BUF
07800 SETZM DOING ;TRAJECTORY SET UP FOR
00100 SKIPE BAND
00200 JRST[ MOVEI 1,BUF
00300 MOVEM 1,GOODIE
00400 MOVEI 1,1001
00500 MOVEM 1,GOODIE+1
00600 SETZM GOODIE+2
00700 MOVE 14,BAND
00800 UFBRD 14,GOODIE
00900 JRST RE
01000 SKIPN BUF+1000
01100 JRST[ SETZM BLOCKS
01200 MOVEI 1,BUF2
01300 MOVEM 1,NXTBUF
01400 SETZM @NXTBUF
01500 JRST ZDTH]
01600 MOVEI 1,BUF2
01700 MOVEM 1,GOODIE
01800 MOVEI 1,20
01900 MOVEM 1,GOODIE+2
02000 UFBRD 14,GOODIE
02100 JRST RE
02200 MOVEI 1,=74
02300 SKIPN BUF2+1000
02400 MOVEI 1,0
02500 MOVEM 1,BLOCKS
02600 MOVEI 1,40
02700 MOVEM 1,GOODIE+2
02800 MOVEI 1,BUF
02900 MOVEM 1,NXTBUF
03000 MOVNS BUF2
03100 JRST ZDTH]
00100 MOVE 1,FILE
00200 MOVEM 1,LFILE
00300 MOVE 1,PPPN
00400 MOVEM 1,LPPPN
00500 INIT 16,17
00600 SIXBIT/DSK/
00700 XWD 0,0
00800 JRST[NDM: MOVEI 3,NODEV
00900 JRST FINISH]
01000 LOOKUP 16,LFILE
01100 JRST[ MOVEI 3,NOFILE
01200 JRST FINISH]
01300 MOVS 1,LPPPN ;FILE LENGTH
01400 MOVN 1,1
01500 ASH 1,-11
01600 MOVEM 1,BLOCKS
01700 SOSGE BLOCKS
01800 JRST FINISH
01900 MOVE 10,[IOWD 1000,BUF]
02000 SETZ 11,
02100 IN 16,10
02200 JRST[ SOSGE BLOCKS
02300 JRST[ MOVEI 1,BUF2
02400 MOVEM 1,NXTBUF
02500 SETZM @NXTBUF
02600 JRST ZDTH]
02700 ADDI 10,1001
02800 IN 16,10
02900 JRST[ MOVEI 1,BUF
03000 MOVEM 1,NXTBUF
03100 MOVNS BUF2
03200 JRST ZDTH]
03300 JRST RE]
03400 JRST RE
00100 ZDTH:
00200 MOVE 1,[XWD DELTH,DELTH+1]
00300 SETZM DELTH
00400 BLT 1,DELTH+5
00500 MOVEI 1,=60
00600 MOVEM 1,STWT
00700 MOVNS BUF
00800 SSW: PUSHJ P,SPACE
00900 WWS:
01000 IFE REPORT+TRACK<
01100 IFE USER<
01200 MOVEI 1,1
01300 CALLI 1,31
01400 >
01500 >
01600 MOVE BITSAV
01700 MOVE 1,COUNT
01800 CAMN 1,COUNTL#
01900 JRST[ SOSGE INLOOP#
02000 JRST[ SPCWAR 636367
02100 MOVEI 1,1
02200 CALLI 1,31
02300 SPCWAR 1,STRADR
02400 JRST RILC]
02500 JRST DILC]
02600 MOVEM 1,COUNTL
02700 RILC:
02800 IFE REPORT+TRACK<MOVEI 1,=2>
02900 IFN REPORT+TRACK<MOVEI 1,100000>
03000 MOVEM 1,INLOOP
03100 DILC: TRNE DTST
03200 JRST BACK
03300 MOVE 1,@NXTBUF
03400 JUMPGE 1,.+2 ;MORE TRAJECTORY TO COME
03500 JRST[ SOSGE BLOCKS
03600 JRST[ SETZM @NXTBUF ;ALL DONE MAKK THIS AS LAST
03700 RELEASE 16,
03800 JRST WDO]
03900 SKIPE BAND
04000 JRST[ MOVE 1,NXTBUF
04100 MOVEM 1,GOODIE
04200 UFBRD 14,GOODIE
04300 JRST RBD
04400 MOVE 1,NXTBUF
04500 SKIPN 1000(1)
04600 SETZM BLOCKS
04700 MOVEI 1,20
04800 ADDM 1,GOODIE+2
04900 JRST ROK]
05000 MOVE 10,NXTBUF
05100 SOJ 10,
05200 HRLI 10,-1000
05300 IN 16,10
05400 JRST[ROK:MOVE 1,NXTBUF
05500 MOVNS (1)
05600 ADDI 1,1001
05700 CAILE 1,BUF2
05800 MOVEI 1,BUF
05900 MOVEM 1,NXTBUF
06000 JRST WDO]
06100 RBD: MOVE 1,NXTBUF ;READ ERROR
06200 SETZM @NXTBUF ;MARK AS LAST
06300 WFF: MOVE BITSAV ;AND WAIT FOR IT TO END
06400 TRNN DTST
06500 JRST WFF
06600 RE: MOVEI 3,REAERR
06700 JRST FINISH]
06800 WDO:
06900 IFE REPORT+TRACK,<
07000 IFE USER,<JRST WWS>
07100 IFN USER,<JRST SSW>
07200 >
07300 IFN TRACK,<
07400 SKIPE WALK
07500 JRST SSW
07600 >
07700 IFN REPORT+TRACK,<
07800 HRRZ 1,DATIWD ;START TO WRITE
07900 CAIL 1,DATO+DBL-1
08000 JRST DOD
08100 HRRZ 2,DATPT ;LAST LOC FILLED
08200 WA: SUBI 2,(1)
08300 JUMPL 2,[MOVEI 2,DATO+DBL-1
08400 JRST WA]
08500 TRZ 2,177
08600 JUMPN 2,[ MOVN 1,2 ;MORE THAN 200 WORDS SO WRITE IT OUT
08700 HRLM 1,DATIWD ;NEG WORD COUNT
08800 OUT 15,DATIWD
08900 HRRZ 1,DATIWD
09000 ADDI 1,(2)
09100 HRRM 1,DATIWD
09200 JRST DOD]
09300 DOD:
09400 IFE USER,<JRST WWS>
09500 IFN USER,<JRST SSW>
09600 >
00100 BACK: SPCWAR 636367
00200 MOVEI 0,0
00300 SKIPE 3,TRAJER
00400 JRST[ IFE DEB,<
00500 IFN TRACK,<SKIPN WALK>
00600 TRO RONLY
00700 MOVEM BITSAV
00800 MOVEI 1,1
00900 CALLI 1,31
01000 DRSW: PUSHJ P,SPACE
01100 DRR: MOVE BITSAV
01200 TRNN DTST
01300 IFE USER,<JRST DRR>
01400 IFN USER,<JRST DRSW>
01500 SPCWAR 636367
01600 MOVEI 0,0
01700 PUSHJ P,SETSET
01800 >
01900 JRST NOERR]
02000 NOERR: IFE USER,<RELEASE 17,
02050 RELEASE 14,
02075 >
02100 IFN REPORT+TRACK,<
02200 PUSHJ P,CLODAT
02300 CLOSE 15,
02400 >
02500 SKIPN SEG
02600 JRST[ SETOM NAME
02700 MOVEM 3,STATUS
02800 MOVE 2,[XWD TH,THETA]
02900 BLT 2,THETA+6
03000 MOVE 1,JOB
03100 MOVEM 1,REPLY
03200 SEND REPLY
03300 JRST WAIT
03400 JRST WAIT]
03500 MOVE 2,SEG
03600 CALLI 2,400016
03700 JRST WAIT
03800 HRRZ 4,NAME
03900 MOVE 2,(4)
04000 HLRZ 4,NAME
04100 MOVEM 2,(4)
04200 PUSHJ P,[SETNAM:MOVE 2,THETA
04300 MOVEI 4,6(2)
04400 HRLI 2,TH
04500 IFN TRACK,<SKIPN WALK>
04600 BLT 2,(4)
04700 MOVE 2,ETOR
04800 MOVEI 4,6(2)
04900 HRLI 2,TORE
05000 BLT 2,(4)
05100 PUSHJ P,SETFLT
05200 MOVEM 3,@STATUS
05300 MOVE 4,DOING
05400 MOVEM 4,@SEGMENT
05500 HRRZ 2,NAME
05600 SETZM (2)
05700 HRLZI 2,40
05800 MOVEM 2,IBIT
05900 INTUUO 4,JOB
06000 JUMP
06100 CALLI 1,400017
06200 POPJ P,]
06300 JRST WAIT
00100 IFN REPORT+TRACK,<
00200 CLODAT:IFN TRACK,<
00300 SKIPE WALK
00400 POPJ P,
00500 >
00600 NWI: HRRZ 1,DATIWD
00700 HRRZ 2,DATPT
00800 SUBI 2,(1)
00900 JUMPL 2,[ HRRZI 2,DATO+DBL-1
01000 SUBI 2,(1)
01100 MOVN 2,2
01200 HRLM 2,DATIWD
01300 SKIPE 2
01400 OUT 15,DATIWD
01500 MOVEI 2,DATO-1
01600 HRRM 2,DATIWD
01700 JRST NWI]
01800 ADDI 2,200
01900 TRZ 2,177
02000 MOVN 1,2
02100 HRLM 1,DATIWD
02200 OUT 15,DATIWD
02300 POPJ P,
02400 >
02500
00100 READ: SETZM STWT
00200 SKIPG 1
00300 TRO POTREAD
00400 TRO RONLY+RUN
00500 RSW: PUSHJ P,SPACE
00600 RSWW: MOVE BITSAV
00700 TRNN DTST
00800 IFE USER,<JRST RSWW>
00900 IFN USER,<JRST RSW>
01000 MOVE 3,TRAJER
01100 PUSHJ P,SETSET
01200 JRST FINISH
01300
00100 SPACE: MOVEI 1,=180
00200 MOVEM 1,COUNT
00300 TRO TRIP
00400 LDB 1,[POINT 1,EXE,32]
00500 MOVEM 1,SOTCHS
00600 JUMPE 1,.+2
00700 TRO STCH
00800 IFN DEB,<SETZM ETIM>
00900 MOVEM BITSAV
01000 IFE USER,<
01100 IFN TRACK,<
01200 SKIPE WALK
01300 JRST[ MOVEM 17,USAVE+17
01400 MOVEM 17,USAVE+17
01500 MOVEI 17,USAVE
01600 BLT 17,USAVE+16
01700 JSR STRADR-1
01800 HRLZI 17,USAVE
01900 BLT 17,16
02000 MOVE 17,USAVE+17
02100 POPJ P,]
02200 >
02300 IFE USER,<
02400 GETAD: INIT 17,417
02500 SIXBIT /AD/
02600 XWD 0,0
02700 JRST GETAD
02710 GETXGP: INIT 14,417
02732 SIXBIT /XGP/
02754 XWD 0,0
02776 JRST GETXGP
02800 >
02900
03000 SPCWAR 1,STRADR
03100 >
03200 IFN USER,<
03300 MOVEM 17,USAVE+17
03400 MOVEI 17,USAVE
03500 BLT 17,USAVE+16
03600 JSR STRADR-1
03700 HRLZI 17,USAVE
03800 BLT 17,16
03900 MOVE 17,USAVE+17
04000 >
04100 POPJ P,
04200
04300 UPDL: FINISH
04400 BLOCK PDLL
04500
04600 IFN USER+TRACK,<
04700 USAVE: BLOCK 20
04800 >
04900 IFN TRACK,<WALK:0>
05000
05100 IFN REPORT+TRACK,<
05200 DFILE: 0
05300 SIXBIT/TMP/
05400 0
05500 DPPPN: 0
05600 >
05700 LFILE: 0
05800 SIXBIT/TRJ/
05900 0
06000 LPPPN: 0
06100
06200 GOODIE: BLOCK 3
00100 FINISH: SPCWAR 636367
00200 IFE USER,<RELEASE 17,
00250 RELEASE 14,
00275 >
00300 SKIPE SEG
00400 JRST [ATSEG: MOVE 1,SEG
00500 CALLI 1,400016
00600 JRST WAIT
00700 PUSHJ P,SETNAM
00800 JRST WAIT]
00900 MOVEM 3,STATUS
01000 MOVE 1,[XWD TH,THETA]
01100 BLT 1,THETA+6
01200 MOVE 1,JOB
01300 MOVEM 1,REPLY
01400 SKIPN 1
01500 JRST WAITED
01600 SEND REPLY
01700 JRST WAIT
01800 JRST WAIT
01900
02000 REPLY: 0
02100 EXE
02200 SEG: 0
02300 SOTCH: 0
02400 JOB: 0
02500 IBIT: 000040000000
02600 TICKS: 0
00100 SETFLT: SKIPN NERVES
00200 POPJ P,
00300 MOVEI 6,1
00400 MOVE 4,NERVES
00500 STL: MOVE 5,OBS(6)
00600 MOVEM 5,(4)
00700 ADDI 4,=16
00800 SOJGE 6,STL
00900 POPJ P,
01000
01100 XLIST
01200 SUBTTL SPACEWAR CODE CONTROL LOU PAUL
01300 LIST